package com.example.airole.tts.service;

import com.example.airole.tts.entity.TTSRequest;
import com.example.airole.tts.entity.TTSResponse;

/**
 * TTS服务接口
 */
public interface TTSService {
    
    /**
     * 文字转语音
     * @param request TTS请求
     * @return TTS响应
     */
    TTSResponse synthesize(TTSRequest request);
    
    /**
     * 文字转语音(异步)
     * @param request TTS请求
     * @return 任务ID
     */
    String synthesizeAsync(TTSRequest request);
    
    /**
     * 获取异步合成结果
     * @param taskId 任务ID
     * @return TTS响应
     */
    TTSResponse getAsyncResult(String taskId);
    
    /**
     * 检查服务是否可用
     * @return 是否可用
     */
    boolean isServiceAvailable();
    
    /**
     * 获取支持的语音列表
     * @return 语音列表
     */
    String[] getSupportedVoices();
    
    /**
     * 获取支持的语言列表
     * @return 语言列表
     */
    String[] getSupportedLanguages();
    
    /**
     * 获取支持的输出格式
     * @return 格式列表
     */
    String[] getSupportedFormats();
}

